/**
 * @author Wu Zhenzhen
 * @version Apr 14, 2012 3:03:39 PM
 */

(function() {
	Ext.onReady(function() {
		// 自定義驗證器
		var newValidation = Ext.apply(Ext.data.validations, {
			newAge : function(config, value) {
				if (null == value || undefined == value) {
					return false;
				}

				var min = config.min;
				var max = config.max;

				if (value <= min || value >= max) {
					return false;
				} else {
					return true;
				}
			},
			newAgeMessage : 'Age is error !'
		});
		// 創建模型對象
		Ext.define('Person', {
			extend : 'Ext.data.Model',
			fields : [{
				name : 'name',
				type : 'auto'
			}, {
				name : 'age',
				type : 'int'
			}, {
				name : 'email',
				type : 'string'
			}],
			// 默認驗證
			validations : [{
				type : 'length',
				field : 'name',
				min : 2,
				max : 5
			}, {
				type : 'newAge',
				field : 'age',
				min : 0,
				max : 150
			}]
		});

		// 1.create
		var person = Ext.create('Person', {
			name : 'myhongkongzhen',
			age : -207,
			email : 'myhongkongzhen@gmail.com'
		});
		console.log(person.get('name'));
		var errors = person.validate();
		// alert(errors+"----");
		var msg = [];
		errors.each(function(item) {
			msg.push(item.field + "---" + item.message);
		});
		console.log(msg.join('\n'));

		// This is deprecated
		/**
		 * Ext.modelManager.create({ //... some doing },'Person');
		 */

		// 2.regMgr in extjs 4.0 is deprecated
	});
})();
